﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAO.Model;
using DAO.Bussiness.Repository;
using System.Web.Security;

namespace Restaurante
{
    public partial class usuarios : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {          
            //BindRolesToList();
        }     
        private void BindRolesToList()
        {
            // Get all of the roles 
            string[] roles = System.Web.Security.Roles.GetAllRoles();
            RoleList.DataSource = roles;
            RoleList.DataBind();
        }
       
        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            Response.Redirect("home.aspx");
        }

        protected void btnAgregar_Click(object sender, EventArgs e)
        {           
            UsuarioRepository ur = new UsuarioRepository();
            List<Usuario> lista = new List<Usuario>();
            Usuario usu = new Usuario();
            try
            {
                if (txtPass.Text == txtPass2.Text)
                {

                    Membership.CreateUser(txtUser.Text.Trim(), txtPass.Text.Trim());
                    if (Membership.ValidateUser(txtUser.Text.Trim(), txtPass.Text.Trim()))
                    {
                        System.Web.Security.Roles.AddUserToRole(txtUser.Text.Trim(), RoleList.SelectedItem.Text);
                        usu.Nombre = txbNombre.Text;
                        usu.Apellido = txbApellido.Text;
                        usu.Id_Tipo_Doc = Convert.ToInt32(ddlTipo.SelectedItem.Value);
                        usu.Nro_Doc = txbNumero.Text;
                        usu.Id_Rol = Convert.ToInt32(RoleList.SelectedItem.Value);
                        usu.Direccion = txtDireccion.Text + 1;
                        usu.Fecha_Ingreso = calFechaIngreso.SelectedDate;
                        usu.Id_Sector = Convert.ToInt32(ddlSector.SelectedItem.Value);
                        if (RoleList.SelectedItem.ToString() == "Mozo") usu.Id_Sector = Convert.ToInt32(ddlSector.SelectedItem.Value);
                        else usu.Id_Sector = 1;
                        usu.Password = txtPass.Text.Trim();
                        ur.Add(usu);
                        ur.Save();
                    }
                }
                else {
                    lblError.Text = "Las contraseñas deben ser iguales !!!.";
                }

            }
            catch(Exception ex)
            {

            }
            finally
            {
                CleanControl(this.Controls);
                Response.Redirect("usuarios.aspx");
            }
        }
        public void CleanControl(ControlCollection controles)
        {
            foreach (Control control in controles)
            {
                if (control is TextBox)
                    ((TextBox)control).Text = string.Empty;
                else if (control is DropDownList)
                    ((DropDownList)control).ClearSelection();
                else if (control is Calendar)
                    ((Calendar)control).SelectedDate = System.DateTime.Now;
                else if (control.HasControls())
                    //Esta linea detécta un Control que contenga otros Controles
                    //Así ningún control se quedará sin ser limpiado.
                    CleanControl(control.Controls);
            }
        }

        protected void RoleList_TextChanged(object sender, EventArgs e)
        {
            if (RoleList.SelectedItem.ToString() == "Mozo")
            {
                ddlSector.Visible = true;
                ddlSector.Visible = true;
            }
            else
            {
                ddlSector.Visible = false;
                ddlSector.Visible = false;
            }

        }
     }
}